Managing Event Data
This documentation is for an older version of ZK. For the latest one, please click here.
The SimpleCalendarEvent is a out-of-box, default implementation of the interface CalendarEvent which we can use directly in ZK Calendar applications.
How to use SimpleCalendarEvent
Using SimpleCalendarEvent is a simple affair. The code below demonstrates how to construct an instance and provide it with necessary data.
SimpleCalendarEvent sce = new SimpleCalendarEvent();
sce.setBeginDate(new Date());
sce.setEndDate(new Date());
//The color Strings should only be colors
//that CSS accept
sce.setContentColor("red");
sce.setHeaderColor("red");
sce.setContent("This is the content of the event");
sce.setTitle("This is the title of the event");
//is this event locked?
sce.setLocked(false);
Most of the values described above are self-explanatory. However, we do need to pay particularly close attention to setContentColor and setHeaderColor which only accept String values which represent valid CSS colors. These can be hex or named strings as both are accepted by the CSS specification.
The CalendarEvent interface
It is important when working with the calendar to effectively manage the event data of the calendar. The event data is contained in a class which implements CalendarEvent.
An implementing Object should provide the following functions:
Method | Usage |
---|---|
getBeginDate | Returns the beginning date of the calendar event. |
getEndDate | Returns the end date of the calendar event.(exclusive) |
getTitle | Returns the title of the calendar event. |
getContent | Returns the content of the calendar event. |
getHeaderColor | Returns the color of the header in the calendar event. Only allows the value being recognized by CSS. |
getContentColor | Returns the color of the content in the calendar event. Only allows the value being recognized by CSS. |
getZclass | Returns the zclass of the calendar event. |
isLocked | Returns whether the calendar event is locked or not. |
A CalendarEvent implementation
The code snippet below details a basic class which would fulfill the contract of the CalendarEvent interface.
import java.util.Date;
import org.zkoss.calendar.api.CalendarEvent;
/**
* A non functional implementation of the CalendarEvent
*
*/
public class MyCalendarEvent implements CalendarEvent {
public Date getBeginDate() {
return new Date();
}
public Date getEndDate() {
return new Date();
}
public String getTitle() {
return "";
}
public String getContent() {
return "";
}
public String getHeaderColor() {
return "";
}
public String getContentColor() {
return "";
}
public String getZclass() {
return "";
}
public boolean isLocked() {
return false;
}
}
In a real implementation, the above class is useless as it does not contain any meaningful data. We could expand on the class so it could save state information. However, ZK Calendar already provides a class named SimpleCalendarEvent which provides the relevant functionality for you.
The example project is at Github